package tools;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

/**
 * Interface de normalisation des mots
 * @author xtannier
 *
 */
public interface Normalizer {
	/**
	 * Renvoie la liste d'unités lexicales contenus dans le fichier
	 * spécifié, en appliquant une normalisation. Equivaut à {@code normalize(filename, false)}. 
	 * @param fileName
	 * @return
	 * @throws IOException
	 */
	public ArrayList<String> normalize(File file) throws IOException;
	
	/**
	 * Renvoie la liste d'unit"s lexicales contenus dans le fichier
	 * spécifié, en appliquant une normalisation.
	 * @param fileName
	 * @param removeStopWords {@code true} si les mots vides doivent être supprimés,
	 * {@code false} sinon
	 * @return
	 * @throws IOException
	 */
	public ArrayList<String> normalize(File file, boolean removeStopWords) throws IOException;
	
	public ArrayList<String> normalize(String text) throws IOException;
	
	public ArrayList<String> normalize(String text, boolean removeStopWords) throws IOException;

	
}
